Unity Experimental DXR项目介绍
Unity正在与NVIDIA进行紧密的合作,解决光线追踪功能的难题。此项技术模拟了光线的物理属性,帮助开发者能够制作并动态调整作品,使实时效果和现实画面的界线变得模糊。
我们发布了Unity Experimental DXR项目,帮助开发者尝试Unity的实时光线追踪功能,本文将详细介绍DXR项目。
小提示:建议你提前阅读英伟达的技术工程师李元亨在Unite 2019大会上的演讲《Unity中的实时光线追踪技术剖析》,以便你熟悉和了解光线追踪技术。
DXR项目
DXR项目一个是基于Unity 2019.2a5的实验性自定义版本,该Unity版本和其中的HDRP 5.8.0版得到了DXR支持的增强,该项目仅适用于Windows系统,支持DX12 API。
该项目是一个让开发者尝试Unity实时光线追踪功能的沙盒环境。目前它仍处于原型状态,DXR的最终实现会和该版本不同,所以暂不能用于任何正式制作。
下载DXR
下载Unity支持DXR的实验性版本:
https://github.com/Unity-Technologies/Unity-Experimental-DXR/releases
配置要求
1、安装最新驱动的NVIDIA RTX系列显卡:
https://www.nvidia.com/Download/index.aspx?lang=com
2、Windows 10 RS5 (Build 1809)或更高版本
安装步骤
下载项目并且解压文件,启动Unity并创建一个新项目。选择DXR High Definition RP (Preview),该选项会设置DXR沙盒项目和HDRP资源包。
在3D SCENE文件夹中,打开Indoors.unity场景。
单击Play查看场景,我们可以在运行模式下启用或禁用光线追踪效果。默认情况下,光线追踪效果仅在游戏视图中可见。
Ray Tracing光线追踪功能配置
为了使用光线追踪功能,我们需要创建光线追踪环境,项目提供的场景内已经创建好该环境。
光线追踪环境检视窗口允许配置多个光线追踪的效果,并全局禁用或启用光线追踪。
Ray Bias(光线偏移):允许移动光线起点,以避免光线自相交现象。
Raytrace SceneView(光线跟踪场景视图):允许在场景视图启用光线追踪效果,否则光线追踪效果仅在游戏视图可见。
通常对艺术家而言,在没有光线追踪效果时在场景进行定位会更简单,特别是在光线追踪场景性能消耗较大的情况下。
其它设置:配置不同效果,每个效果上都有图层遮罩,可以控制效果要考虑到的对象。如果对象和效果不在相同图层,该效果不会对对象产生影响。
光线追踪效果
光线追踪环境遮蔽
AO Layer Mask(AO图层遮罩):控制哪些对象是效果的一部分。
AO Number of Samples(AO采样数量):采样数量越大,获得的质量越高,但同时会提高性能消耗。建议为实时性能使用4个采样数量。
Max AO Ray Length(最大AO光线长度):控制光线在视为丢失前移动的最大距离长度,设为较低数值能提高性能。
AO Filter Mode(AO过滤模式):其中降噪器类型包括:None,Spatio Temporal和NVIDIA denoiser。它下面的设置取决于所选的降噪器,让开发者能以不同性能消耗控制质量。
光线追踪反射
Ray-Traced Reflections可以为场景添加反射效果,并在启用时替换屏幕空间反射。
Reflections Layer Mask(反射图层遮罩):控制哪些对象属于效果的一部分。
Max Reflections Ray Length(最大反射光线长度):控制光线在视为丢失前移动的最大距离长度,设为较低数值能够提高性能。
Reflections Blend Distance(反射混合距离):未使用。
Reflections Min Smoothness(反射最小光滑度):设定使用光线追踪反射需要的最小光滑度数值,否则像素会使用反射探针或天空。
Reflections clamp values(反射限制数值):定义在预曝光空间中用于降低荧光效果的阈值,请尝试把该值设为1以上,以使泛光效果保持在一定强度。
Reflections quality(反射质量):其有二个选项:QuaterRes和Integration。
使用QuaterRes时,反射会对每个像素进行一次采样并通过时间积累来渲染,因此会渲染为完整屏幕的1/4。使用Integration时,反射会使用每个像素的采样光线数量在整个屏幕进行渲染。
在二种情况下,降噪器都会在最后应用,并使用可控制的过滤半径,设为较大半径会减少性能消耗。
Integration选项即完整分辨率的效果示例。
1/4分辨率的效果示例,提升性能后很难看出区别。
反射效果能够在视椎体外反射光线和对象。为了解决这个限制,我们可以生成光线集群,并应用到光线追踪着色器上。
光线集群是64x64x32的体素,它的大小由Cluster Range集群范围,即围绕摄像机中心的一半体素范围进行定义,并且带有每个Cluster Cell Max Lights单位设定的最大光线数量。
光线追踪矩形区域光
Ray-Traced Shadows(光线追踪矩形区域光)设置可为纹理矩形区域光启用光线追踪区域阴影。
Shadow Layer Mask(阴影图层遮罩):控制哪些对象属于该效果的一部分。
Shadow Num Samples(阴影采样数量):采样数量越大,获得的质量越高,但同时会提高性能消耗。建议为实时性能使用4个采样数量。
Max Num Shadows(最大阴影数量):设置场景允许的光线遮罩区域阴影数量,当达到最大数量时,额外的光线不会产生阴影。
Shadow Bilateral Radius(阴影双侧半径):控制降噪器内使用的模糊核心大小,设为较大数值能减少噪声,但会提高性能消耗。
Split Integration(分离集成):当启用该选项时,所有阴影采样会逐个执行,而不是同时执行所有采样。这样可以提高大型区域光的性能,开发者需要测量该选项的影响,从而知道它对当前应用程序是否有价值,该选项不会改变质量。
主要可见性光线追踪
Primary Visibility Raytracing使用光线追踪渲染对象。和其它依赖副光线的效果不同,该效果的目标是渲染出光滑的透明对象,尽管它也能作用于不透明对象。该效果仅支持光滑对象,即没有粗糙折射效果的对象。
Primary Visibility Layer Mask(主要可见性图层遮罩):控制哪些对象属于该效果的一部分。
Raytracing Maximal Depth(光线追踪最大深度):定义光线在和对象相交时,允许触发其它光线的次数,该属性能得到递归的平滑反射和折射效果。
下面是Maximal Depth为不同数值时,二个玻璃的渲染效果比较。
当Maximal Depth最大深度设为1。
当Maximal Depth最大深度设为5。
当Maximal Depth最大深度设为7。
Raytracing Ray Length(光线追踪长度):控制光线在视为丢失前移动的最大距离长度,设为较低数值能够提高性能。
为了让对象在该效果启用时通过主要可见性效果(Primary-Visibility)渲染,我们要编辑对象材质,在Rendering Pass属性选择Raytracing。
间接漫反射光照
Indirect Diffuse Lighting允许给场景添加一个漫反射光照效果。它处于非常早期的状态,开发者可以强制实现该效果,但它不能用于实时开发的目的。该效果更多地是用于参考。
Indirect Diffuse Layer Mask(间接漫反射图层遮罩):控制哪些对象属于该效果的一部分。
Indirect Diffuse Num Samples(间接漫反射采样数量):采样数量越大,得到的质量越高,但同时会提高性能消耗。建议使用至少16个采样,以得到反弹光照的大致效果。
Indirect Diffuse Ray Length(间接漫反射光线长度):光线在回退为天空光照前的最大距离,设为较低数值能够提高性能。
Indirect Diffuse Ray clamp values(间接漫反射光线限制值):定义在预曝光空间中用于降低荧光效果的阈值,请尝试把该值设为1以上,以使泛光效果保持在一定强度。
Indirect Diffuse Filter mode(间接漫反射过滤模式):使用时间和空间过滤器来得到没有噪声的结果。
调试
你可以使用调试菜单检查不同效果的结果,依次点击Windows -> Analysis -> Render Pipeline Debug,选择Lighting部分,然后选取Fullscreen Debug Mode全屏调试模式。
SSAO模式允许你查看光线追踪AO效果。
ScreenSpaceReflections模式允许查看光线追踪反射效果。
IndirectDiffuse模式允许查看到间接漫反射效果。
PrimaryVisibility模式允许查看主要可见性遮罩。
LightCluster模式允许查看光线集群内的光线。
Light cluster(光线集群):画面的颜色表示照射该区域的光线量,以不同的黄色深度表示,红色表示光线的最大预算。
材质制作
DXR实验性版本仅支持光线追踪的Lit和Unlit材质,而且仅支持HDRP/Lit着色器视图版本。
在为光线追踪使用材质时,目前该版本不支持任何Mipmap LOD。HDRP资源仅支持Lit Shader Mode为Deferred Only。
小结
Unity Experimental DXR项目为大家介绍到这里,更多Unity最新功能介绍,尽在Unity Connect平台(Connect.unity.com)。
下载Unity Connect APP,请点击此处。 观看部分Unity官方视频,请关注B站帐户:Unity官方。
推荐阅读
Unite 2019 | Unity中的实时光线追踪技术剖析
直播课程
明晚8点,Unity技术经理成亮将为你解析轻量级渲染管线LWRP最新功能及案例。[了解详情...]
直播课程:轻量级渲染管线LWRP最新功能及案例解析
直播地址:
https://connect.unity.com/events/2019_lwrp_new_features
喜欢本文,请点击“在看”